#include <stdio.h>

void i_c_c()
{
 /*80484d0:	55                   	push   %ebp
 80484d1:	89 e5                	mov    %esp,%ebp
 80484d3:	53                   	push   %ebx
 80484d4:	83 ec 44             	sub    $0x44,%esp
 80484d7:	c7 45 f4 d2 04 00 00 	movl   $0x4d2,-0xc(%ebp)*/	
	int a = 0x4d2;	

 /*80484de:	8d 55 d0             	lea    -0x30(%ebp),%edx		// 0x30 - 0x10 = 32 / 4 = 8, 4*8=32

 80484e1:	b9 00 00 00 00       	mov    $0x0,%ecx			// ecx = 0
 80484e6:	b8 20 00 00 00       	mov    $0x20,%eax			// eax = 0x20
 80484eb:	83 e0 fc             	and    $0xfffffffc,%eax		// eax = 0x20&0xfffffffc
 80484ee:	89 c3                	mov    %eax,%ebx			// ebx = 0x20&0xfffffffc
 80484f0:	b8 00 00 00 00       	mov    $0x0,%eax			// eax = 0

 80484f5:	89 0c 02             	mov    %ecx,(%edx,%eax,1)	// (edx+eax*1) = ecx = 0
 80484f8:	83 c0 04             	add    $0x4,%eax			// eax = eax+4
 80484fb:	39 d8                	cmp    %ebx,%eax			// ebx ?= eax
 80484fd:	72 f6                	jb     80484f5 <i_c_c+0x25>*/
	char b[32] = {0};

 /*80484ff:	01 c2                	add    %eax,%edx
 8048501:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)*/
	int c = 0;

 /*8048508:	8b 4d f4             	mov    -0xc(%ebp),%ecx	// ecx = a = 1234
 804850b:	ba d3 4d 62 10       	mov    $0x10624dd3,%edx	// edx = 0x10624dd3 = 274877907
 8048510:	89 c8                	mov    %ecx,%eax		// eax = a
 8048512:	f7 ea                	imul   %edx			// edx = a * edx
 8048514:	c1 fa 06             	sar    $0x6,%edx		// edx = 1;	2^38 / 274877907 = 999.9999 = 1000
 8048517:	89 c8                	mov    %ecx,%eax		// eax = a
 8048519:	c1 f8 1f             	sar    $0x1f,%eax		// eax = a >> 0x1f = 0
 804851c:	29 c2                	sub    %eax,%edx		// edx = 1-0 = 1
 804851e:	89 d0                	mov    %edx,%eax		// div operation end
 8048520:	89 45 f0             	mov    %eax,-0x10(%ebp)*/
	c = a / 1000;

 /*8048523:	c7 44 24 08 ea 00 00 	movl   $0xea,0x8(%esp)
 804852a:	00 
 804852b:	8b 45 f0             	mov    -0x10(%ebp),%eax
 804852e:	89 44 24 04          	mov    %eax,0x4(%esp)
 8048532:	c7 04 24 14 88 04 08 	movl   $0x8048814,(%esp)
 8048539:	e8 52 fe ff ff       	call   8048390 <printf@plt>*/
	printf("%d %d\n", c, 0xea);

 /*804853e:	8b 45 f0             	mov    -0x10(%ebp),%eax	// eax = c = 1
 8048541:	83 c0 30             	add    $0x30,%eax	// eax = 1+0x30 = 0x31
 8048544:	88 45 d0             	mov    %al,-0x30(%ebp)	// b[0] = 0x31 */
	b[0] = c + 0x30;

 /*8048547:	8b 4d f4             	mov    -0xc(%ebp),%ecx	// ecx = 1234
 804854a:	ba 1f 85 eb 51       	mov    $0x51eb851f,%edx	// 1374389535
 804854f:	89 c8                	mov    %ecx,%eax	// eax = 1234
 8048551:	f7 ea                	imul   %edx		// edx:eax = 1234 * 0x51eb851f = 1695996686190 (0x18AE147AF6E)
                                                                // edx:0x18A eax:0xE147AF6E
 8048553:	c1 fa 05             	sar    $0x5,%edx	// edx = 12    (2^37/1374389535 = 99.999999 = 100)
 8048556:	89 c8                	mov    %ecx,%eax	// eax = 1234 
 8048558:	c1 f8 1f             	sar    $0x1f,%eax       // eax = 0
 804855b:	89 d1                	mov    %edx,%ecx        // ecx = 12
 804855d:	29 c1                	sub    %eax,%ecx        // ecx = 12-0 = 12
 804855f:	ba 67 66 66 66       	mov    $0x66666667,%edx	// 1717986919
 8048564:	89 c8                	mov    %ecx,%eax        // eax = 12
 8048566:	f7 ea                	imul   %edx             // edx:eax = 12 * 1717986919 = 20615843028 (0x4CCCCCCD4)
 8048568:	c1 fa 02             	sar    $0x2,%edx	// edx = 4>>2 = 1  (2^34/1717986919 = 9.999999 = 10)
 804856b:	89 c8                	mov    %ecx,%eax        // eax = 12
 804856d:	c1 f8 1f             	sar    $0x1f,%eax       // eax = 0
 8048570:	29 c2                	sub    %eax,%edx        // edx = edx-eax = 1-0 = 1
 8048572:	89 d0                	mov    %edx,%eax	// eax = 1
 8048574:	89 45 f0             	mov    %eax,-0x10(%ebp)	// c = 1
 8048577:	8b 55 f0             	mov    -0x10(%ebp),%edx	// edx = 1
 804857a:	89 d0                	mov    %edx,%eax	// eax = 1
 804857c:	c1 e0 02             	shl    $0x2,%eax	// eax = 4
 804857f:	01 d0                	add    %edx,%eax	// eax = 4+1 = 5
 8048581:	01 c0                	add    %eax,%eax	// eax = 10
 8048583:	29 c1                	sub    %eax,%ecx	// ecx = 12-10 = 2
 8048585:	89 c8                	mov    %ecx,%eax	// ecx = 2
 8048587:	89 45 f0             	mov    %eax,-0x10(%ebp)*/
	c = a / 100 % 10;

 /*804858a:	8b 45 f0             	mov    -0x10(%ebp),%eax	// eax = 2
 804858d:	83 c0 30             	add    $0x30,%eax		// eax = 2 + 0x30
 8048590:	88 45 d1             	mov    %al,-0x2f(%ebp)	// b[1] = 2+0x30 */
	b[1] = c + 0x30;

 /*8048593:	8b 4d f4             	mov    -0xc(%ebp),%ecx	// ecx = 1234
 8048596:	ba 67 66 66 66       	mov    $0x66666667,%edx	// 1717986919
 804859b:	89 c8                	mov    %ecx,%eax	// eax = 1234
 804859d:	f7 ea                	imul   %edx			// edx:eax = 1234*1717986919 = 0x1ED 9999 9C7E
 804859f:	c1 fa 02             	sar    $0x2,%edx	// edx = 111101101>>2 = 123  (2^34/1717986919 = 9.999999 = 10)
 80485a2:	89 c8                	mov    %ecx,%eax	// eax = 1234
 80485a4:	c1 f8 1f             	sar    $0x1f,%eax	// eax = 0
 80485a7:	89 d1                	mov    %edx,%ecx	// ecx = 123
 80485a9:	29 c1                	sub    %eax,%ecx	// ecx = 123-0 = 123
 80485ab:	ba 67 66 66 66       	mov    $0x66666667,%edx	// edx = 1717986919
 80485b0:	89 c8                	mov    %ecx,%eax	// eax = 123
 80485b2:	f7 ea                	imul   %edx			// edx:eax = 123 * 1717986919 = 211312391037 (0x31 3333 337D)
 80485b4:	c1 fa 02             	sar    $0x2,%edx	// edx = 110001>>2 = 12   (2^34/1717986919 = 9.999999 = 10)
 80485b7:	89 c8                	mov    %ecx,%eax	// eax = 123
 80485b9:	c1 f8 1f             	sar    $0x1f,%eax	// eax = 0
 80485bc:	29 c2                	sub    %eax,%edx	// edx = edx-eax = 12
 80485be:	89 d0                	mov    %edx,%eax	// eax = 12
 80485c0:	89 45 f0             	mov    %eax,-0x10(%ebp)	// c = 12
 80485c3:	8b 55 f0             	mov    -0x10(%ebp),%edx // edx = 12
 80485c6:	89 d0                	mov    %edx,%eax	// eax = 12
 80485c8:	c1 e0 02             	shl    $0x2,%eax	// eax = 12<<2 = 48
 80485cb:	01 d0                	add    %edx,%eax	// eax = 48+12 = 60
 80485cd:	01 c0                	add    %eax,%eax	// eax = 60+60 = 120
 80485cf:	29 c1                	sub    %eax,%ecx	// ecx = ecx-eax = 3
 80485d1:	89 c8                	mov    %ecx,%eax	// eax = 3
 80485d3:	89 45 f0             	mov    %eax,-0x10(%ebp) */
	c = a / 10 % 10;

 /*80485d6:	8b 45 f0             	mov    -0x10(%ebp),%eax
 80485d9:	83 c0 30             	add    $0x30,%eax
 80485dc:	88 45 d2             	mov    %al,-0x2e(%ebp)*/
	b[2] = c + 0x30;

 /*80485df:	8b 4d f4             	mov    -0xc(%ebp),%ecx	// ecx = 1234
 80485e2:	ba 67 66 66 66       	mov    $0x66666667,%edx	// edx = 1717986919
 80485e7:	89 c8                	mov    %ecx,%eax	// eax = 1234
 80485e9:	f7 ea                	imul   %edx			// edx:eax = 1234*1717986919 = 0x1ED 9999 9C7E
 80485eb:	c1 fa 02             	sar    $0x2,%edx	// edx = 111101101>>2 = 123    2^34/1717986919 = 9.999999 = 10
 80485ee:	89 c8                	mov    %ecx,%eax	// eax = 1234
 80485f0:	c1 f8 1f             	sar    $0x1f,%eax	// eax = 0
 80485f3:	29 c2                	sub    %eax,%edx	// edx = 123-0 = 123
 80485f5:	89 d0                	mov    %edx,%eax	// eax = 123
 80485f7:	c1 e0 02             	shl    $0x2,%eax	// eax = 492
 80485fa:	01 d0                	add    %edx,%eax	// eax = 492+123 = 615
 80485fc:	01 c0                	add    %eax,%eax	// eax = 1230
 80485fe:	29 c1                	sub    %eax,%ecx	// ecx = 1234-1230 = 4
 8048600:	89 c8                	mov    %ecx,%eax	// eax = 4
 8048602:	89 45 f0             	mov    %eax,-0x10(%ebp)*/
	c = a % 10;

 /*8048605:	8b 45 f0             	mov    -0x10(%ebp),%eax
 8048608:	83 c0 30             	add    $0x30,%eax
 804860b:	88 45 d3             	mov    %al,-0x2d(%ebp)*/
	b[3] = c + 0x30;

 /*804860e:	8d 45 d0             	lea    -0x30(%ebp),%eax
 8048611:	89 44 24 04          	mov    %eax,0x4(%esp)
 8048615:	c7 04 24 21 88 04 08 	movl   $0x8048821,(%esp)
 804861c:	e8 6f fd ff ff       	call   8048390 <printf@plt>*/
	printf("%s\n", b);

 /*8048621:	83 c4 44             	add    $0x44,%esp
 8048624:	5b                   	pop    %ebx
 8048625:	5d                   	pop    %ebp
 8048626:	c3                   	ret */
}   

void h_c_c()
{
 /*8048627:	55                   	push   %ebp
 8048628:	89 e5                	mov    %esp,%ebp
 804862a:	53                   	push   %ebx
 804862b:	83 ec 44             	sub    $0x44,%esp
 804862e:	c7 45 f4 ef cd ab 00 	movl   $0xabcdef,-0xc(%ebp)	*/
	int a = 0xabcdef;

 /*8048635:	8d 55 d0             	lea    -0x30(%ebp),%edx
 8048638:	b9 00 00 00 00       	mov    $0x0,%ecx
 804863d:	b8 20 00 00 00       	mov    $0x20,%eax
 8048642:	83 e0 fc             	and    $0xfffffffc,%eax
 8048645:	89 c3                	mov    %eax,%ebx
 8048647:	b8 00 00 00 00       	mov    $0x0,%eax
 804864c:	89 0c 02             	mov    %ecx,(%edx,%eax,1)
 804864f:	83 c0 04             	add    $0x4,%eax
 8048652:	39 d8                	cmp    %ebx,%eax
 8048654:	72 f6                	jb     804864c <h_c_c+0x25>*/
	char b[32] = {0};

 /*8048656:	01 c2                	add    %eax,%edx
 8048658:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)*/
	int c = 0;

 /*804865f:	8b 45 f4             	mov    -0xc(%ebp),%eax	// eax = 0xabcdef
 8048662:	c1 f8 14             	sar    $0x14,%eax		// eax >>= eax
 8048665:	89 45 f0             	mov    %eax,-0x10(%ebp)	 */
	c = a >> 0x14;

 /*8048668:	8b 45 f0             	mov    -0x10(%ebp),%eax
 804866b:	83 c0 57             	add    $0x57,%eax
 804866e:	88 45 d0             	mov    %al,-0x30(%ebp)*/
	b[0] = c + 0x57;

 /*8048671:	8b 45 f4             	mov    -0xc(%ebp),%eax	// eax = 0xabcdef
 8048674:	c1 f8 10             	sar    $0x10,%eax
 8048677:	89 45 f0             	mov    %eax,-0x10(%ebp)*/
	c = a >> 0x10;

 /*804867a:	83 65 f0 0f          	andl   $0xf,-0x10(%ebp)*/
	c &= 0xf;

 /*804867e:	8b 45 f0             	mov    -0x10(%ebp),%eax
 8048681:	83 c0 57             	add    $0x57,%eax
 8048684:	88 45 d1             	mov    %al,-0x2f(%ebp)*/
	b[1] = c + 0x57;

 /*8048687:	8b 45 f4             	mov    -0xc(%ebp),%eax	// eax = 0xabcdef
 804868a:	c1 f8 0c             	sar    $0xc,%eax
 804868d:	89 45 f0             	mov    %eax,-0x10(%ebp)*/
	c = a >> 0xc;

 /*8048690:	83 65 f0 0f          	andl   $0xf,-0x10(%ebp)*/
	c &= 0xf;

 /*8048694:	8b 45 f0             	mov    -0x10(%ebp),%eax
 8048697:	83 c0 57             	add    $0x57,%eax
 804869a:	88 45 d2             	mov    %al,-0x2e(%ebp)*/
	b[2] = c + 0x57;

 /*804869d:	8b 45 f4             	mov    -0xc(%ebp),%eax
 80486a0:	c1 f8 08             	sar    $0x8,%eax
 80486a3:	89 45 f0             	mov    %eax,-0x10(%ebp)*/
	c = a >> 0x8;

 /*80486a6:	83 65 f0 0f          	andl   $0xf,-0x10(%ebp)*/
	c &= 0xf;

 /*80486aa:	8b 45 f0             	mov    -0x10(%ebp),%eax
 80486ad:	83 c0 57             	add    $0x57,%eax
 80486b0:	88 45 d3             	mov    %al,-0x2d(%ebp)*/
	b[3] = c + 0x57;

 /*80486b3:	8b 45 f4             	mov    -0xc(%ebp),%eax	// eax = 0xabcdef
 80486b6:	c1 f8 04             	sar    $0x4,%eax
 80486b9:	89 45 f0             	mov    %eax,-0x10(%ebp)*/
	c = a >> 0x4;

 /*80486bc:	83 65 f0 0f          	andl   $0xf,-0x10(%ebp)*/
	c &= 0xf;

 /*80486c0:	8b 45 f0             	mov    -0x10(%ebp),%eax
 80486c3:	83 c0 57             	add    $0x57,%eax
 80486c6:	88 45 d4             	mov    %al,-0x2c(%ebp)*/
	b[4] = c + 0x57;

 /*80486c9:	8b 45 f4             	mov    -0xc(%ebp),%eax	// eax = 0xabcdef
 80486cc:	89 45 f0             	mov    %eax,-0x10(%ebp)*/
	c = a;

 /*80486cf:	83 65 f0 0f          	andl   $0xf,-0x10(%ebp)*/
	c &= 0xf;

 /*80486d3:	8b 45 f0             	mov    -0x10(%ebp),%eax
 80486d6:	83 c0 57             	add    $0x57,%eax
 80486d9:	88 45 d5             	mov    %al,-0x2b(%ebp)*/
	b[5] = c + 0x57;

 /*80486dc:	8d 45 d0             	lea    -0x30(%ebp),%eax
 80486df:	89 44 24 04          	mov    %eax,0x4(%esp)
 80486e3:	c7 04 24 33 88 04 08 	movl   $0x8048833,(%esp)
 80486ea:	e8 a1 fc ff ff       	call   8048390 <printf@plt>*/
	printf("%s\n", b);

 /*80486ef:	83 c4 44             	add    $0x44,%esp
 80486f2:	5b                   	pop    %ebx
 80486f3:	5d                   	pop    %ebp
 80486f4:	c3                   	ret */
}  

int main()
{
 /*80486f5:	55                   	push   %ebp
 80486f6:	89 e5                	mov    %esp,%ebp
 80486f8:	83 e4 f0             	and    $0xfffffff0,%esp
 80486fb:	83 ec 20             	sub    $0x20,%esp
 80486fe:	c6 44 24 1f 30       	movb   $0x30,0x1f(%esp)*/
	char a = 0x30;

 /*8048703:	0f be 54 24 1f       	movsbl 0x1f(%esp),%edx	// edx = a
 8048708:	0f be 44 24 1f       	movsbl 0x1f(%esp),%eax	// eax = a
 804870d:	89 54 24 08          	mov    %edx,0x8(%esp)	// (esp+0x8)=a
 8048711:	89 44 24 04          	mov    %eax,0x4(%esp)	// (esp+0x4)=a
 8048715:	c7 04 24 44 88 04 08 	movl   $0x8048844,(%esp)
 804871c:	e8 6f fc ff ff       	call   8048390 <printf@plt>*/
	printf("%c %d\n", a, a);

 /*8048721:	c6 44 24 1f 01       	movb   $0x1,0x1f(%esp)
 8048726:	0f be 54 24 1f       	movsbl 0x1f(%esp),%edx
 804872b:	0f be 44 24 1f       	movsbl 0x1f(%esp),%eax
 8048730:	89 54 24 08          	mov    %edx,0x8(%esp)
 8048734:	89 44 24 04          	mov    %eax,0x4(%esp)
 8048738:	c7 04 24 44 88 04 08 	movl   $0x8048844,(%esp)
 804873f:	e8 4c fc ff ff       	call   8048390 <printf@plt>*/
	printf("%c %d\n", a, a);

 /*8048744:	c6 44 24 1f 31       	movb   $0x31,0x1f(%esp)
 8048749:	0f be 54 24 1f       	movsbl 0x1f(%esp),%edx
 804874e:	0f be 44 24 1f       	movsbl 0x1f(%esp),%eax
 8048753:	89 54 24 08          	mov    %edx,0x8(%esp)
 8048757:	89 44 24 04          	mov    %eax,0x4(%esp)
 804875b:	c7 04 24 44 88 04 08 	movl   $0x8048844,(%esp)
 8048762:	e8 29 fc ff ff       	call   8048390 <printf@plt>*/
	printf("%c %d\n", a, a);

 /*8048767:	e8 64 fd ff ff       	call   80484d0 <i_c_c>*/
	i_c_c();

 /*804876c:	e8 b6 fe ff ff       	call   8048627 <h_c_c>*/
	h_c_c();

 /*8048771:	c9                   	leave  
 8048772:	c3                   	ret*/
	return 0;
}


